package com.gzsxy.sso.core.model;

import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;

/**
 * @author xiaolong
 * @version 1.0
 * @description: 会话用户
 * @date 2021/11/9 17:51
 */
@Getter
@Setter
public class SessionUser implements Serializable {

    private static final long serialVersionUID = -442802945494739110L;


    private String id;
    /**
     * 用户名
     */
    private String userName;
    /**
     * 真实姓名
     */
    private String realName;
    /**
     * 密码
     */
    private String password;
    /**
     * 电话
     */
    private String phone;
    /**
     * 头像
     */
    private String imagePath;
    /**
     * 邮箱
     */
    private String email;

    /**
     * 是否禁用
     */
    private Boolean freeze;
    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;

    /**
     * 排序
     */
    private Integer sort;

    /**
     *  更新用户
     */
    private String updateUser;

    /**
     * 添加用户
     */
    private String addUser;

    /**
     * 最后一次登录时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date lastLoginTime;

    /**
     * 客户端Ip
     */
    private String clientIp;

    /**
     * 角色代码
     */
    private String roleCodes;

    /**
     * 角色id
     */
    private String roleIds;

    /**
     * 是否超级管理员（0否1是）
     */
    private Boolean isSadmin;

    /**
     * 是否系统管理员（0否1是）
     */
    private Boolean isAdmin;

    /**
     * 状态码
     */
    private Integer code;

    /**
     * 返回消息
     */
    private String msg;

    @Override
    public String toString() {
      return JSONObject.toJSONString(this, SerializerFeature.WriteMapNullValue);
    }
}
